package util

import (
	"fmt"
	"math/rand"
	"net/http"
	"os"
	"regexp"
	"strings"
	"time"
)

// IsMobile 识别手机号码
func IsMobile(mobile string) bool {
	result, _ := regexp.MatchString(`^(1[3|4|5|7|8][0-9]\d{4,8})$`, mobile)
	if result {
		return true
	} else {
		return false
	}
}


func OrderNo(prefix string)string{
	set := ""
	rand.Seed(time.Now().Unix())
	set += fmt.Sprintf("%v%v%v%v",prefix,time.Now().Unix(),os.Getppid(),rand.Intn(10))
	return set
}

// IsPicturePath 判断图片是否需要前缀
func IsPicturePath(pic string,prefix string)string{
	if len(pic) == 0 {
		return pic
	}
	if pic[:1] == "/" {
		pic = fmt.Sprintf("%v%v",prefix,pic)
	}
	return pic
}

// GetCurrentIP 获取当前的ip
func GetCurrentIP(r *http.Request)string{
	// 这里也可以通过X-Forwarded-For请求头的第一个值作为用户的ip
	// 但是要注意的是这两个请求头代表的ip都有可能是伪造的
	ip := r.Header.Get("X-Real-IP")
	if ip == ""{
		// 当请求头不存在即不存在代理时直接获取ip
		ip = strings.Split(r.RemoteAddr, ":")[0]
	}
	return ip
}

